[asp.net]现在有一段转换字符的代码,如何写出根据转换后的字符还原回原来的字符的程序?

来源:百度知道 编辑:UC知道 时间:2024/05/21 20:43:16
用下面一段代码对密码加密:
public static string mmclassify(string Mminput)
{
int mmtemp;
string mmout="";
for(int i=0;i<Mminput.Length;i++)
{
Byte[] mmtemp2 = System.Text.Encoding.ASCII.GetBytes(Mminput.Substring(i,1));
Byte[] mmtemp3 = System.Text.Encoding.ASCII.GetBytes(Mminput.Substring(Mminput.Length - 1 - i, 1));
mmtemp = Convert.ToInt16(mmtemp2[0].ToString()) + Convert.ToInt16(mmtemp3[0].ToString()) + Mminput.Length + i + 1;
mmout = mmout + Convert.ToString(mmtemp).Trim();
}
return mmout;
}

请问可否写一段程序,可以将加密后的字符转换为原来的字符?

楼上的胡乱黏贴,给我拖出去打!

楼主,你问题中的加密是不可还原的,两个数相加的时候,无法推测出原始的数据。

没仔细看,像MD5加密是不可逆的,如果你想实现比如验证什么的,就采用加密后再去验证.

/**//// <summary>
/// 加密
/// </summary>
/// <param name="datastr">要加密的字符串</param>
/// <param name="keystr">加密密钥</param>
/// <returns>加密后的字符串</returns>
private String Encrypt(String datastr, String keystr)
{
DESCryptoServiceProvider desc = new DESCryptoServiceProvider();

byte[] key = System.Text.Encoding.ASCII.GetBytes(keystr);
byte[] data = System.Text.Encoding.Unicode.GetBytes(datastr);

MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, desc.CreateEncryptor(key, key), CryptoStreamMode.Write);

cs.Write(data, 0, data.Length);
cs.FlushFinalBlock();